Accompanying the widespread use of local area networks in recent years, a distributed system has now been widely used to concurrently execute on a plurality of machines the processing that could not be done with a single WS (work station). Owing to the advent of a high-speed network medium such as optical fibers and the like, the latency throughput in the network layer has improved strikingly. It is therefore becoming possible to adapt the decentralized processing even for the processings which, so far, could not be done with this system.
A multi-computer system is the one in which a plurality of network computers are linked together through a network and which executes the processing concurrently. Network computers carry out parallel processing while transferring messages via the network. In a multi-computer system, resources are decentralized to prevent the occurrence of bottlenecks that results from the concentration of the resources. Since the resources are decentralized in the multi-computer system, message communication takes place frequently, as required, to exchange resources between computers. In order to improve the system throughput, therefore, it is important to reduce the software overhead in the message communication.
A major portion of the overhead in the communication software processing is the data copy processing. The reasons for requesting the data copy processing may differ depending upon the transmitting side and the receiving side. Shown below are the factors for requesting data copy depending upon the transmitting side and the receiving side.
Copies are needed on the transmitting side because of the following reasons.
(1) The data to be transmitted must exist in a region where main memory exists at all times. PA1 (2) Asynchronous operation must be carried out by which the processing is executed without being blocked. PA1 (1) The data-receiving region must exist in the main memory at all times. PA1 (2) The received address is notified by a receive system call.
In the case of the item (1), the user data cannot be transferred by DMA (direct-memory access, a procedure for gaining direct access to memory for data input/output (I/O) processes) processing unless the data exists in the main memory when the transmission operation is carried out by the network adapter. In order to guarantee that the data to be transmitted exists in the main memory at all times, it becomes necessary to copy the data from a user data space that may be paged out into the OS (operating system) space region where the main memory exists at all times and where page-out does not occur.
To carry out the asynchronous operation according to item (2) above, the user data region must be protected so that the data copy is not eliminated.
Furthermore, copies are needed on the receiving side because of the following reasons.
In the case of the item (1), the user data cannot be transferred by the DMA processing unless the data region exists in the OS space region where the main memory exists at all times when the transmission operation is carried out by the network adapter. The item (2) stems from the fact that the destination of transfer (the received address) is unstable or undetermined when the received data arrives since there is no guarantee that the receive system call is issued earlier than the arrival of the data.
Concerning studies on high speed communication mechanisms, at the Parallel Processing Symposium JSPP '93, held in May, 1993, a paper that was presented on "The Effect of Message Communication on Performance in a Distributed-Memory Parallel Computing System--Communication, Computing Overlap and the Effectiveness of Direct Message Reception" proposes a direct message communication means. Although this paper describes that a receive address could be added to the message header, it does not show how to prevent or obviate the data copy processing.
In order to directly specify the address on the receiving side, the address on the receiving side must be known beforehand on the transmission side. To achieve this, a prior, separate, prescribed notification is required. If this prior communication is effected using a conventional method, it is impossible to reduce the communication processing overhead.
That is, the received address of the user data to which the received data is to be passed, cannot be specified until the hardware based transfer of the received data to the main memory is completed.
As such, incoming received data has to first be moved into the OS space region where the main memory exists at all times before the data is copied or otherwise processed to pass the data to the destination application.
The amount of processing involved in copying this data increases in proportion to the amount of data. At present, such data copying operations account for a large proportion of data-transport operations and this has become a major problem with respect to implementing high speed data communication.